"""
 列表和元组, 类似于java中的数组
    列表和元组的功能是差不多了, 但有一个非常明显的区别:
    列表是可变的, 创建好之后, 随时能改
    元组是不可变的, 创建好之后, 改不了. 要想改, 只能丢弃旧的, 搞一个新的.
"""

# 列表的创建 以及 下标操作

# 创建列表
# 1. 直接使用字面值来表示
#  [] 就表示一个空列表
a = []
print(type(a))
print("-------------------------------------")

# 使用list()来创建. list() 是一个内建函数
b = list()
print(type(b))
print("-------------------------------------")

# 可以在创建列表的同时在 [] 中设置初始值
c = [1, 2, 3, 4]
print(type(c))
print(len(c))
print(c)  # 打印整个列表内容
print("-------------------------------------")


# java c++ 要求一个数组只能存放相同类型的变量. python中无要求
d = [1, "hello", True, [1, "world", False]]
print(type(d))
print(len(d))
print(d)  # 打印整个列表内容
print("-------------------------------------")

# 列表的访问下标, 下标从0开始.
print(d[0], d[1], d[2], d[3])
print(d[3][0], d[3][1], d[3][2])

# 使用下标修改 列表 元素
print(f"列表修改前: {d}")
d[0] = 'hello'
d[1] = 0
print(f"列表修改后: {d}")
print("-------------------------------------")

# python 中的下标可以写成负数!!!
#   例如写成 -1, 等价于 len(d) - 1
print(d[-1])
print(d[len(d) - 1])


